#ifndef  xparticleRenderPlug_h_h_h_h
#define xparticleRenderPlug_h_h_h_h

#include "XMain.h"
#include "xParticleRender.h"



namespace XE	
{



	class xParticleBillBoardRender :public xParticleRender
	{
	public:

		const static  xString xParticleRenderType;


		xParticleBillBoardRender(const xString& name,xParticleTemplate* pParent);

		~xParticleBillBoardRender();


		virtual HRESULT  Render(XRenderSystem* pRender,xParticleSystemInstance* pParticleSystem,const xCamera* pCamera);

		virtual const xString& GetType()const {return xParticleRenderType;}


		void clone(const xParticleRender* pRender);



	protected:

		xVertexDeclaration* m_pVertexDecl;

	};


	class xParticleBillBoardRenderFactory :public xParticleRenderFactory
	{
	public:
		xParticleBillBoardRenderFactory(){}
		~xParticleBillBoardRenderFactory(){}

		static const xString RenderType;

		const xString& GetType()const {return RenderType;}

		xParticleRender* CreateRender(const xString& name,xParticleTemplate* pParent) const  
		{
			return new xParticleBillBoardRender(name,pParent);
		}


	};




}















#endif